# 构建最终目标 main.out
main.out: 1.o 2.o
	gcc 1.o 2.o -o main.out # 将两个.o文件链接为可执行文件main.out
 
# 从1.c生成1.o
1.o: 1.s
	gcc -c 1.s -o 1.o # 汇编1.s文件，生成1.o
 
1.s: 1.i
	gcc -S 1.i -o 1.s # 编译1.i文件，生成1.s
 
1.i: 1.c
	gcc -E 1.c -o 1.i # 预处理1.c文件，生成1.i
 
# 从2.c生成2.o（注意这里应该是2.c而不是22.c）
2.o: 2.s
	gcc -c 2.s -o 2.o # 汇编2.s文件，生成2.o
 
2.s: 2.i
	gcc -S 2.i -o 2.s # 编译2.i文件，生成2.s
 
2.i: 2.c
	gcc -E 2.c -o 2.i # 预处理2.c文件，生成2.i